package com.av.db.dataobjects.enums;

/**
 * Define los roles que puede tener un usuario en el sistema
 * 
 * @author Victor J Morales R
 * 
 */
public enum Rol {
	DEFAULT(0, "Default"), ADMIN(1, "Administrador"), CONDU(2, "Conductor"), GUARD(
			3, "Guardia"), USUAR(4, "Usuario del sistema");

	private final String descripcion;
	private final int id;

	// Constructores

	Rol(int id, String descripcion) {
		this.id = id;
		this.descripcion = descripcion;
	}// Rol

	// Propiedades

	/**
	 * Obtiene el identificador del rol
	 */
	public int getId() {
		return id;
	}// getId

	/**
	 * Obtiene la descripcion del rol
	 * 
	 * @return
	 */
	public String getDescripcion() {
		return descripcion;
	}// getDescripcion

	// Funciones

	/**
	 * Funcion requerida para el mapeo de enumeradores en hibernate
	 */
	public static Rol valueOf(int id) {
		switch (id) {
		case 1:
			return ADMIN;
		case 2:
			return CONDU;
		case 3:
			return GUARD;
		case 4:
			return USUAR;
		default:
			return DEFAULT;
		}
	}// valueOf

	public String toString() {
		return this.descripcion;
	}// toString
}// Rol